package com.divemotor.ventarepuestosinternet.service;

import java.util.List;

import com.divemotor.ventarepuestosinternet.exception.DivemotorBusinessException;
import com.divemotor.ventarepuestosinternet.model.Imagen;
import com.divemotor.ventarepuestosinternet.model.Marca;
import com.divemotor.ventarepuestosinternet.model.ModeloFabrica;
import com.divemotor.ventarepuestosinternet.model.SubGrupo;
import com.divemotor.ventarepuestosinternet.model.TipoComponente;
import com.divemotor.ventarepuestosinternet.model.Vehiculo;

public interface ImagenService {

	public List<Imagen> listarImagenesPorSubGrupo(SubGrupo subGrupo)
			throws DivemotorBusinessException;

	public List<Imagen> listarImagenesPorSubGrupoYModeloFabrica(
			SubGrupo subGrupo, ModeloFabrica modeloFabrica)
			throws DivemotorBusinessException;

	public String obtenerRutaImagenes() throws DivemotorBusinessException;

	public void insertar(Imagen imagen) throws DivemotorBusinessException;

	public String obtenerSiguienteNombreImagen(String tipo)
			throws DivemotorBusinessException;

	public Integer obtenerSiguientePosicionPorSubGrupoYModeloFabrica(
			Imagen imagen) throws DivemotorBusinessException;

	public void eliminarImagen(Imagen imagen) throws DivemotorBusinessException;

	public List<Imagen> listarImagenesPorSubGrupoYTipoComponente(
			SubGrupo subGrupo, TipoComponente tipoComponente)
			throws DivemotorBusinessException;

	public List<Imagen> listarImagenesPorMarcaSubGrupoYTipoComponente(
			Marca marca, SubGrupo subGrupo, TipoComponente tipoComponente)
			throws DivemotorBusinessException;

	public void editarImagen(Imagen imagen) throws DivemotorBusinessException;



	public List<Imagen> listarImagenesPorMarcaSubGrupoYTipoComponenteYVehiculo(
			Marca marca, SubGrupo subGrupo, TipoComponente tipoComponente,
			Vehiculo vehiculo) throws DivemotorBusinessException;

}
